package org.cg.entidade;
import java.util.ArrayList;
import java.util.List;

import org.cg.componente.IComponente;
import org.cg.entidade.estado.IEstado;


public abstract class Entidade {
	
	private IEstado estadoActual;
	
	private List<IComponente> componentes = new ArrayList<IComponente>();
	
	public void mudarEstado(IEstado estadoNovo) {
		estadoActual = estadoNovo;
	}
	
	protected void adicionarComponente(IComponente componente) {
		componentes.add(componente);
	}
	
	protected List<IComponente> getComponentes() {
		return componentes;
	}
	
	public void update() {
		estadoActual.update(this);
	}
}
